API
base.actor
创建表现
- 参数
- name (string) - [ActorData]中声明的表现名
- 返回
- actor (actor) - 表现
local actor = base.actor(name)
destroy
销毁表现
- 参数
- force (bool) - 不填默认为false,
- 对ModelActor,true表示不播放death动画,直接销毁。
- 对SoundActor, false表示当前Sound立刻开始按照ActorSoundData里FadeTime淡出,淡出后销毁actor
- force (bool) - 不填默认为false,
actor:destroy()
set_owner
设置表现所属玩家,影响该表现对于不同玩家的可见性
- 参数
- owner_id (number) - 玩家的slot_id
actor:set_owner(owner_id)
set_asset
动态替换表现的资源,比如模型表现换模型,音效表现换音效,特效表现换特效
- 参数
- asset (string) - [ActorModelData]或者[ActorSoundData]中的资源名
actor:set_asset(asset)
set_shadow
仅对拥有CEAnimatedModel的模型表现生效,显示或隐藏阴影
- 参数
- enable (boolean) - 是否显示阴影
actor:set_shadow(false)
set_position
设置表现在场景中的位置,attach之后,设置表现相对于父节点的偏移
- 参数
- x (number)
- y (number)
- z (number)
或者
- 参数
- point (point)
actor:set_position(x, y, z)
actor:set_position(base.point(x, y, z))
get_position
获取actor当前的世界坐标位置,返回point (由于弱同步,服务端无返回值,所以仅客户端有这个api)
- 返回值
- point (point)
local point = actor:get_position()
set_ground_z
设置表现在场景中的相对于地面的高度,一次性设置。 set_position和set_ground_z后调用的覆盖先调用的。 对于attach到其他单位/表现的表现不生效。
- 参数
- z (number)
actor:set_ground_z(z)
set_rotation
设置表现在场景中的朝向
- 参数
- x (number) - 欧拉角pitch, 绕x轴旋转值
- y (number) - 欧拉角yaw, 绕y轴旋转值
- z (number) - 欧拉角roll, 绕z轴旋转值
actor:set_rotation(x, y, z)
set_scale
设置表现在场景中的比例大小
- 参数
- x (number) - 三个维度的比例大小均为x
actor:set_scale(x)
attach_to
将表现附着在别的表现或者单位上
- 参数
- target (unit/actor/number) - 可以是单位/表现/actor_id/unit_id
- socket (string) - 可以不填,或者填target上的socket名字
actor:attach_to(target, socket)
play
播放音效/特效,当前支持音效/特效表现
actor:play()
play_animation
模型特效播放动画
- 参数
- anim (string) - 模型表现Asset路径下的某个动画文件名,不带.ani
- params (table) - 通过表传播放参数,可以不填,当前支持loop(默认false), speed(默认1.0)
actor:play_animation('Crawl', {loop=true, speed=1.0})
stop
停止音效/特效,当前支持音效/特效表现 如果是模型表现,则表示停止通过play_animation播放的动画,开始播放stand动画。如果当前没有播放通过play_animation播放的动画。则没有效果。
- 参数
- fade (boolean) - 不填则默认为false
- 仅对SoundActor有效,true表示当前播放的sound按照ActorSoundData里的FadeTime时间淡出,然后停止。
- fade (boolean) - 不填则默认为false
actor:stop(true)
pause
暂停音效,当前只支持音效表现
actor:pause()
resume
继续播音效,当前只支持音效表现
actor:resume()
set_volume
设置音量,当前只支持音效表现
- 参数
- volume (number) - 音量
actor:set_volume(volume)
sound_category_volume
设置音效类型音量,音效的音量等于音效类型音量乘以音效资源的音量
- 参数
- category (string) - 类型
- volume (number) - 音量
game.sound_category_volume('UI', 0.5)
sound_category_stop
停止播放某一类型的所有音效表现
- 参数
- category (string) - 类型
game.sound_category_stop('UI')
set_sound_table_volume
[ActorSoundData]的数据可以通过base.table.sound来访问,这里的数据只读。
物体编辑器的ActorSound数据会和[ActorSoundData]的数据合并然后读入C++表,被运行时使用。
这个api就是改C++表里的声音的音量。注意,api不会改变base.table.sound里的音量数据,但是会影响运行时之前或者之后创建的所有的用到这个sound的SoundActor的音量。
- 参数
- name (string) - [ActorSoundData]里的表名
- volume (float) - 调整后的声音大小
game.set_sound_table_volume('sound1', 0.5)
set_sound_table_rolloff_factor
与上一个api类似 [ActorData]的数据可以通过base.table.actor来访问,这里的数据只读。
物体编辑器的Actor数据会和[ActorData]的数据合并然后读入C++表,被运行时使用。
这个api就是改C++表里的音效表现的衰减系数。注意,api不会改变base.table.actor里的数值,但是会影响运行时之前或者之后创建的所有的用到这个衰减系数的Actor。
- 参数
- name (string) - [ActorData]里的表名
- value (float) - 调整后的衰减系数
game.set_sound_table_rolloff_factor('actor1', 3)
set_sound_table_far_distance
与上一个api类似 [ActorData]的数据可以通过base.table.actor来访问,这里的数据只读。
物体编辑器的Actor数据会和[ActorData]的数据合并然后读入C++表,被运行时使用。
这个api就是改C++表里的音效表现的最远收听距离。注意,api不会改变base.table.actor里的数值,但是会影响运行时之前或者之后创建的所有的用到这个最远收听距离的Actor。
- 参数
- name (string) - [ActorData]里的表名
- value (float) - 调整后的最远收听距离
game.set_sound_table_far_distance('actor1', 4000)
base.actor_info
获取当前所有的id到actor映射表
- actor_map
- actor_id到actor的映射表
- server_actor_map
- 服务器通知创建的server_actor_id到actor的映射表
- 服务器创建api会先生成一个s_id(负数), 然后通知客户端api创建一个actor,客户端会自己生成一个acotr_id(负数),并维护s_id到actor的映射在server_actor_map里
local actor_map = base.actor_info().actor_map
local server_actor_map = base.actor_info().server_actor_map
local actor1 = actor_map[-2] --actor id均为负数
local actor2 = server_actor_map[-1] -- 服务器通知创建的actor也为负数